home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / easyblt / bltsys.cls < prev    next >
Text File  |  1999-04-24  |  6KB  |  247 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "BltSysCls"
  10. Attribute VB_GlobalNameSpace = True
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. Private mvarhDC As Long 'local copy
  17. Private mvarBMP As Long
  18. Private mvarIsEmpty As Boolean 'local copy
  19. Private OldBMP As Long
  20. Private mvarTransparency As Boolean 'local copy
  21. Private ScreenWidth As Integer
  22. Private ScreenHeight As Integer
  23. Private ScreenX As Integer
  24. Private ScreenY As Integer
  25. Private mvarMaskBMP As Long 'local copy
  26. Private mvarMaskhDC As Long 'local copy
  27. Public TargetDC As Long
  28. Public NoAutoRedraw As Boolean
  29. Public Property Get ScrY() As Integer
  30. ScrY = ScreenY
  31. End Property
  32.  
  33. Public Property Get MaskhDC() As Long
  34. 'used when retrieving value of a property, on the right side of an assignment.
  35. 'Syntax: Debug.Print X.MaskhDC
  36.     MaskhDC = mvarMaskhDC
  37. End Property
  38.  
  39.  
  40.  
  41. Public Property Get MaskBMP() As Long
  42. 'used when retrieving value of a property, on the right side of an assignment.
  43. 'Syntax: Debug.Print X.MaskBMP
  44.     MaskBMP = mvarMaskBMP
  45. End Property
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Public Sub Redraw()
  54. Dim FrmDC As Long
  55. FrmDC = TargetDC
  56. 'OldBMP = SelectObject(PrevImghDC, PrevImgBMP)
  57. 'ret% = BitBlt(FrmDC, 400, 400, 100, 100, PrevImghDC, ScreenX, ScreenY, SRCCOPY)
  58. 'ret% = SelectObject(PrevImghDC, OldBMP)
  59. If mvarTransparency = False Then
  60. OldBMP = SelectObject(mvarhDC, mvarBMP)
  61. ret% = BitBlt(FrmDC, ScreenX, ScreenY, ScreenWidth, ScreenHeight, mvarhDC, 0, 0, SRCCOPY)
  62. OldBMP = SelectObject(mvarhDC, OldBMP)
  63. Else
  64. OldBMP = SelectObject(mvarMaskhDC, mvarMaskBMP)
  65. ret% = BitBlt(FrmDC, ScreenX, ScreenY, ScreenWidth, ScreenHeight, mvarMaskhDC, 0, 0, SRCAND)
  66. OldBMP = SelectObject(mvarMaskhDC, OldBMP)
  67. OldBMP = SelectObject(mvarhDC, mvarBMP)
  68. ret% = BitBlt(FrmDC, ScreenX, ScreenY, ScreenWidth, ScreenHeight, mvarhDC, 0, 0, SRCPAINT)
  69. OldBMP = SelectObject(mvarhDC, OldBMP)
  70. End If
  71. End Sub
  72.  
  73. Public Function PastePicture(Optional ByVal X As Integer = 0, Optional ByVal y As Integer = 0) As Boolean
  74. OldBMP = SelectObject(mvarhDC, mvarBMP)
  75. ret% = BltSysMod.PastePicture(mvarhDC, 0, 0)
  76. OldBMP = SelectObject(mvarhDC, OldBMP)
  77. ScreenWidth = ClpBoard.Width
  78. ScreenHeight = ClpBoard.Height
  79. End Function
  80.  
  81. Public Function PasteMaskPicture(Optional ByVal X As Integer = 0, Optional ByVal y As Integer = 0) As Boolean
  82. OldBMP = SelectObject(mvarMaskhDC, mvarMaskBMP)
  83. ret% = BltSysMod.PastePicture(mvarMaskhDC, 0, 0)
  84. OldBMP = SelectObject(mvarMaskhDC, OldBMP)
  85. ScreenWidth = ClpBoard.Width
  86. ScreenHeight = ClpBoard.Height
  87. End Function
  88.  
  89.  
  90.  
  91. Public Function CopyMask(ByVal X As Integer, ByVal y As Integer, ByVal H As Integer, ByVal W As Integer) As Boolean
  92. CP = BltSysMod.CopyPicture(mvarMaskhDC, X, y, H, W)
  93. End Function
  94.  
  95.  
  96. Public Function CopyPicture(ByVal X As Integer, ByVal y As Integer, ByVal H As Integer, ByVal W As Integer) As Boolean
  97. CopyPicture = BltSysMod.CopyPicture(mvarhDC, X, y, H, W)
  98. End Function
  99.  
  100.  
  101. Public Sub Create(Hwnd As Long, DC As Long, W As Long, H As Long)
  102. mvarhDC = CreateCompatibleDC(GetDC(Hwnd))
  103. mvarBMP = CreateCompatibleBitmap(GetDC(Hwnd), W, H)
  104. mvarMaskhDC = CreateCompatibleDC(GetDC(Hwnd))
  105. mvarMaskBMP = CreateCompatibleBitmap(GetDC(Hwnd), W, H)
  106. 'PrevImghDC = CreateCompatibleDC(GetDC(Hwnd))
  107. 'PrevImgBMP = CreateCompatibleBitmap(GetDC(Hwnd), 800, 600)
  108. TargetDC = DC
  109. End Sub
  110. Public Property Let ScrX(vData As Integer)
  111. ScreenX = vData
  112. If NoAutoRedraw = False Then
  113. Redraw
  114. End If
  115. End Property
  116.  
  117. Public Property Let ScrWidth(vData As Integer)
  118. ScreenWidth = vData
  119. If NoAutoRedraw = False Then
  120. Redraw
  121. End If
  122. End Property
  123. Public Property Let ScrHeight(vData As Integer)
  124. ScreenHeight = vData
  125. If NoAutoRedraw = False Then
  126. Redraw
  127. End If
  128. End Property
  129.  
  130.  
  131.  
  132.  
  133.  
  134. Public Property Get ScrX() As Integer
  135. ScrX = ScreenX
  136. End Property
  137.  
  138.  
  139.  
  140. Public Property Let ScrY(vData As Integer)
  141. ScreenY = vData
  142. If NoAutoRedraw = False Then
  143. Redraw
  144. End If
  145. End Property
  146.  
  147.  
  148. Public Property Get ScrHeight() As Integer
  149. ScrHeight = ScreenHeight
  150. End Property
  151.  
  152. Public Property Get ScrWidth() As Integer
  153. ScrWidth = ScreenWidth
  154. End Property
  155.  
  156.  
  157.  
  158. Public Sub SetPixel(X As Integer, y As Integer, RGBVal As Long)
  159. OldBMP = SelectObject(mvarhDC, mvarBMP)
  160. ret% = SystemSupport.SetPixel(mvarhDC, X, y, RGBVal)
  161. OldBMP = SelectObject(mvarhDC, OldBMP)
  162. End Sub
  163.  
  164. Public Function ReadPixel(X As Integer, y As Integer) As Long
  165. OldBMP = SelectObject(mvarhDC, mvarBMP)
  166. ReadPixel = GetPixel(mvarhDC, X, y)
  167. OldBMP = SelectObject(mvarhDC, OldBMP)
  168. End Function
  169.  
  170.  
  171. Public Property Let Transparency(ByVal vData As Boolean)
  172. 'used when assigning a value to the property, on the left side of an assignment.
  173. 'Syntax: X.Transparency = 5
  174.     mvarTransparency = vData
  175. End Property
  176.  
  177.  
  178.  
  179. Public Property Get BMP() As Long
  180. 'used when retrieving value of a property, on the right side of an assignment.
  181. 'Syntax: Debug.Print X.BMP
  182.     BMP = mvarBMP
  183. End Property
  184.  
  185. Public Property Get Transparency() As Boolean
  186. 'used when retrieving value of a property, on the right side of an assignment.
  187. 'Syntax: Debug.Print X.Transparency
  188.   
  189.         Transparency = mvarTransparency
  190.  
  191. End Property
  192.  
  193.  
  194.  
  195.  
  196. Public Property Get IsEmpty() As Boolean
  197. 'used when retrieving value of a property, on the right side of an assignment.
  198. 'Syntax: Debug.Print X.IsEmpty
  199.     IsEmpty = mvarIsEmpty
  200. End Property
  201.  
  202.  
  203.  
  204. Public Property Get hdc() As Long
  205. 'used when retrieving value of a property, on the right side of an assignment.
  206. 'Syntax: Debug.Print X.hDC
  207.     hdc = mvarhDC
  208. End Property
  209.  
  210.  
  211.  
  212. Private Sub Class_InitProperties()
  213.  
  214. End Sub
  215.  
  216.  
  217. Private Sub Class_ReadProperties(PropBag As PropertyBag)
  218.  
  219. End Sub
  220.  
  221.  
  222.  
  223. Public Sub DestroyPicture()
  224. ret% = DeleteDC(mvarhDC)
  225. ret% = DeleteObject(mvarBMP)
  226. ret% = DeleteDC(mvarMaskhDC)
  227. re% = DeleteObject(mvarMaskBMP)
  228. End Sub
  229.  
  230.  
  231.  
  232. Public Sub LoadPicture(filename As String)
  233. DirectLoad filename, mvarhDC, mvarBMP, ScreenWidth, ScreenHeight
  234. If NoAutoRedraw = False Then
  235. Redraw
  236. End If
  237. End Sub
  238.  
  239. Public Sub LoadMask(filename As String)
  240. Dim W As Integer, H As Integer
  241. DirectLoad filename, mvarMaskhDC, mvarMaskBMP, W, H
  242. If NoAutoRedraw = False Then
  243. Redraw
  244. End If
  245. End Sub
  246.  
  247.